package com.chen.string.stringjoiner;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
       /* 键盘录入一个字符串，
        要求1:长度为小于等于9
        要求2:只能是数字
                将内容变成罗马数字
        下面是阿拉伯数字跟罗马数字的对比关系:
        I-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、V-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、IX-9
        注意点:
        罗马数字里面是没有0的
        如果键盘录入的数字包含8，可以变成""(长度为8的字符串)*/

        // 1.键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        String s;
        while (true) {
            System.out.println("请输入一个数字:");
            s = sc.next();

            // 2.校验字符串是否满足规则
            boolean flag = checkStr(s);
            if (flag) {
                break;

            }else{
                System.out.println("输入的数字不符合要求");
                continue;
            }
        }
        /*将内容变成罗马数字
        下面是阿拉伯数字跟罗马数字的对比关系:
        I-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、V-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、IX-9*/

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            int number =  c - '0';
            String ss = changeLuoMa(number);
            sb.append(ss);
        }
        System.out.println(sb);
    }

    public static String changeLuoMa(int  num) {
        // 定义一个数组，让索引和罗马数字产生一个对应关系
        String[] array = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
        return array[num];
    }

    public static boolean checkStr (String s) {
        // 判断长度
        if (s.length() > 9) {
            return false;
        }
        // 判断是否是数字
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c <'0' || c >'9') {
                return false;
            }

        }
        return true;

    }
}
